<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .red{
            color: red;
        }
        [v-cloak] {
            display: none;
        }
    </style>
</head>
<body>
    <h2>Vue模板语法</h2>
        <div id="app"  v-cloak>
            <h2>事件绑定---参数传递</h2>
            <div>{{num}}</div>
            <div>
                <!-- 事件调用方法-->
                <button v-on:click='handle1'>点击1</button>
                <button @click='handle(123)'>点击</button>
                <!-- 可以传递多个参数 -->
                <button @click='handle(123,456)'>点击</button>
                <button @click='handle2(123,456,$event)'>点击2</button>
            </div>
        </div>
</body>
<script src="./js/vue.js"></script>
<script>
    /*
        总结：

                数据绑定：是将数据填充到标签中

                事件绑定：是将数据和模板关联起来

                绑定函数的两种方式体现在参数传递上
                    1、要传递一个具体的参数要用函数调用，可以传参 默认携带事件对象
                    2、还可以传递事件对象 $event代表事件对象

                如果事件直接绑定函数名称，默认会传递事件对象作为事件函数的第一个参数，
                如果事件绑定函数调用，那么事件对象必须作为最后一个参数传递，并且事件对象的名称必须是$event

    */
    var vm = new Vue({
        el: '#app',
        data: {
           num: 0
        },
        methods:{
            handle2:function(p,p1,event){
                this.num++
                console.log(this === vm)    //true
                console.log(p)              //123
                console.log(p,p1)           //123 456
                console.log(event)
                console.log(event.target.tagName)
                console.log(event.target.innerHTML)
            },
            handle1:function(event){
                console.log(event.target.innerHTML)
            }
        }
    })
</script>
</html>